package com.yazif.vqa.task.chain;

import com.yazif.vqa.api.wechat.domain.Message;
import com.yazif.vqa.task.AbstractTarget;
import com.yazif.vqa.task.Target;
import com.yazif.vqa.util.MessageUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

@Component
public class ReadyTarget extends AbstractTarget {


    @Override
    public Message execute(Message message, Target target) {

        String msgType = message.getMsgType();
        message.setMsgType(msgType.toUpperCase());
        String errorMsg = getErrorMsg(message);
        if (errorMsg == null) {
            return target.execute(message);
        }
        Message send = MessageUtils.getBaseRecvMessage(message);
        send.setMsgType("TEXT");
        send.setContent(errorMsg);
        return send;
    }

    private String getErrorMsg(Message message) {
        if ("TEXT".equals(message.getMsgType())) {
            String content = message.getContent();
            message.setContent(content.trim());
            if (StringUtils.isBlank(content)) {
                return "哎呀，出错啦，我什么都没收到";
            }

            /*未找到合适方法
            if (!StringUtils.isAlphanumericSpace(content)) {
                return "抱歉，目前该系统只支持英文，请重试...";
            }*/
        }
        return null;
    }
}
